{% extends 'layout.html' %}


{% block content %}
    <div class="container">

        <div>
            <input type="button" value="新建订单1_css" class="btn btn-success" data-toggle="modal"
                   data-target="#myModal">
            <input id="btnAdd" type="button" value="新建订单2_js" class="btn btn-success">
        </div>

        <!--列表-->
        <div class="panel panel-default" style="margin-top: 15px">
            <!-- Default panel contents -->
            <div class="panel-heading" style="font-weight: 700">
                <span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>
                订单列表
            </div>

            <!-- Table -->

            <table class="table table-hover">
                <thead>
                <tr>
                    <th>ID</th>
                    <th>订单号</th>
                    <th>订单名</th>
                    <th>价格</th>
                    <th>状态</th>
                    <th>用户名</th>
                    <th>操作</th>
                </tr>
                </thead>
                <tbody>
                {% for item in queryset %}
                    <tr uid="{{ item.id }}">
                        <td>{{ item.id }}</td>
                        <td>{{ item.oid }}</td>
                        <td>{{ item.title }}</td>
                        <td>{{ item.price }}</td>
                        <td>{{ item.get_status_display }}</td>
                        <td>{{ item.admin.username }}</td>
                        <td>
                            {#                            <a class="btn btn-primary btn-xs" href="/admin/{{ item.id }}/edit/">编辑</a>#}
                            {#                            <a class="btn btn-danger btn-xs" href="/admin/{{ item.id }}/delete/">删除</a>#}
                            <input uid="{{ item.id }}" type="button" class="btn btn-primary btn-xs btn-edit" value="编辑">
                            <input uid="{{ item.id }}" type="button" class="btn btn-danger btn-xs btn-delete"
                                   value="删除">
                        </td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>
        </div>
        <!--分页-->
        <ul class="pagination">
            {{ page_string }}
        </ul>


        {#新建/编辑订单（对话框）#}
        <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
            <div class="modal-dialog" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                                aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="myModalLabel">新建</h4>
                    </div>
                    <div class="modal-body">

                        <form id="formAdd" novalidate>
                            <div class="clearfix">
                                {% for item in form %}
                                    <div class="col-xs-12">
                                        <div class="form-group" style="position: relative; margin-bottom: 20px; ">
                                            <label>{{ item.label }}: </label>
                                            {{ item }}
                                            <span class="error-msg"
                                                  style="color: red; position: absolute">{{ item.errors.0 }}</span>
                                        </div>
                                    </div>
                                {% endfor %}
                            </div>
                        </form>

                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                        <button id="btnSave" type="button" class="btn btn-primary">保存</button>
                    </div>
                </div>
            </div>
        </div>

        {#删除对话框#}
        <div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
            <div class="modal-dialog" role="document">
                <div class="alert alert-danger alert-dismissible fade in" role="alert">
                    <h4>是否确定删除！</h4>
                    <p style="margin: 10px 50px 0px">删除后 数据将会被删除无法恢复（关联数据一起）</p>
                    <p style="text-align: right">
                        <button id="btnConfirmDelete" type="button" class="btn btn-danger">确 定</button>
                        <button type="button" class="btn btn-default" data-dismiss="modal">取 消</button>
                    </p>
                </div>
            </div>
        </div>
    </div>

{% endblock %}

{% block js %}
    <script type="text/javascript">

        var DELETE_ID;
        var EDIT_ID;

        $(function () {
            bindBtnAddEvent();
            bindBtnSaveEvent();
            bindBtnDeleteEvent();
            bindBtnConfirmDeleteEvent();
            bindBtnEditEvent();
        });

        function bindBtnAddEvent() {
            $('#btnAdd').click(function () {

                // 点击时将EDIT_ID为空 好判断对话框为添加还是编辑
                EDIT_ID = undefined;

                // 先清空全部输入框的数据
                $("#formAdd")[0].reset();

                // 先更该名字
                $("#myModalLabel").text("新建");

                // 点击新建按钮执行，显示对话框
                $('#myModal').modal('show');
            });
        }

        function bindBtnSaveEvent() {
            $('#btnSave').click(function () {
                // 清空错误信息
                $(".error-msg").text("");

                // 根据EDIT_ID判断是否
                if (EDIT_ID) {
                    // 编辑
                    doEdit()
                } else {
                    // 添加
                    doAdd()
                }
            });
        }

        // 编辑按钮的Ajax
        function doEdit() {
            $.ajax({
                url: "/order/edit/" + "?uid=" + EDIT_ID,    // -->   /order/edit/?uid=12
                type: 'post',
                // 将表单所有数据传到后台
                data: $('#formAdd').serialize(),
                dataType: 'JSON',
                success: function (res) {
                    {#console.log(res);#}
                    if (res.status) {
                        {#alert('添加成功');#}
                        // 清空【 先找到表单 获取一个jquery对象
                        // 加上[0] 后变成DOM对象
                        // reset 滞空
                        $('#formAdd')[0].reset()

                        // 保存清空后应该关闭对话框
                        $('#myModal').modal('hide')

                        // 刷新页面
                        location.reload();
                    } else {
                        // 再判断是否有此数据存在
                        if (res.msg) {
                            alert("数据不存在")

                            // 没有这条数据 后刷新页面
                            location.reload()
                        } else {
                            $.each(res.error, function (k, v) {
                                $("#id_" + k).next().text(v[0]);
                            })
                        }
                    }
                }
            });
        }

        // 添加按钮的Ajax
        function doAdd() {
            $.ajax({
                url: '/order/add/',
                type: 'post',
                // 将表单所有数据传到后台
                data: $('#formAdd').serialize(),
                dataType: 'JSON',
                success: function (res) {
                    {#console.log(res);#}
                    if (res.status) {
                        {#alert('添加成功');#}
                        // 清空【 先找到表单 获取一个jquery对象
                        // 加上[0] 后变成DOM对象
                        // reset 滞空
                        $('#formAdd')[0].reset()

                        // 保存清空后应该关闭对话框
                        $('#myModal').modal('hide')

                        // 刷新页面
                        location.reload();
                    } else {
                        $.each(res.error, function (k, v) {
                            $("#id_" + k).next().text(v[0]);
                        })
                    }
                }
            });
        }

        function bindBtnDeleteEvent() {
            $(".btn-delete").click(function () {
                {#alert("成功点击")#}
                // 显示删除对话框
                $('#deleteModal').modal('show')

                // 获取到当前行的id并赋值给全局变量DELETE_ID
                DELETE_ID = $(this).attr("uid");
            });
        }

        //btnConfirmDelete
        function bindBtnConfirmDeleteEvent() {
            $("#btnConfirmDelete").click(function () {
                // 点击确认删除按钮，将全局变量的DELETE_ID设置的那个id发送到后台
                $.ajax({
                    {#url: "/order/" + DELETE_ID + "/delete",   //  /order/20/delete/#}
                    url: "/order/delete",
                    data: {             //   /order/delete/?uid=20
                        uid: DELETE_ID
                    },
                    type: "GET",
                    dataType: "JSON",
                    success: function (res) {
                        if (res.status) {
                            {#alert('删除成功');#}

                            // 关闭对话框
                            $('#deleteModal').modal('hide')

                            // 在页面上将删除当行删除（js方法）
                            $("tr[uid='" + DELETE_ID + "']").remove();

                            // 把要删除的id全局变量变成DELETE_ID制空
                            DELETE_ID = 0;

                            {#// 刷新页面  简单方式【刷新 #}
                            {#location.reload();#}
                        } else {
                            // 删除失败
                            alert(res.error);
                        }
                    }
                });
            });
        }

        function bindBtnEditEvent() {
            $(".btn-edit").click(function () {
                // 先清空全部输入框的数据
                $("#formAdd")[0].reset();

                // 获取编辑行的当前id
                var editUid = $(this).attr("uid");

                {#alert('点解成功')#}
                // 发送Ajax请求到后台获取当前行的数据
                $.ajax({
                    url: "/order/detail/",
                    data: {
                        uid: editUid
                    },
                    type: "GET",
                    dataType: "JSON",
                    success: function (res) {
                        if (res.status) {

                            EDIT_ID = editUid

                            // 对话框显示出来之前让数据默认赋值在对话框中
                            // 循环拿到k和v 拼接id名 val将值赋值给输入框
                            $.each(res.data, function (name, value) {
                                $("#id_" + name).val(value);
                            })

                            // 成功之后才显示对话框及其操作
                            // 先更改名字
                            $("#myModalLabel").text("编辑")
                            // 点击显示对话框
                            $('#myModal').modal('show')
                        } else {
                            alert(res.error);
                        }
                    }
                })
            });
        }
    </script>

{% endblock %}